package org.db.dao;

import java.util.SortedSet;
import java.util.TreeSet;

public class GleisDAO extends DAO {

	private int gleisID;

	private String bezeichnung;

	private double anfangsStation;

	private double abstandKmLinie;

	private SortedSet<KruemmungslinienDAO> kruemmungslinienElemente;

	private SortedSet<UeberhoehungslinienDAO> ueberhoehungslinienElemente;

	private SortedSet<HoehenlinienDAO> hoehenlinienElemente;

	public GleisDAO(int gleisID, String Bezeichnung, double anfangsStation,
			double abstandKmLinie) {
		this.setGleisID(gleisID);
		this.setBezeichnung(Bezeichnung);
		this.setAnfangsStation(anfangsStation);
		this.setAbstandKmLinie(abstandKmLinie);

		kruemmungslinienElemente = new TreeSet<KruemmungslinienDAO>();
		ueberhoehungslinienElemente = new TreeSet<UeberhoehungslinienDAO>();
		hoehenlinienElemente = new TreeSet<HoehenlinienDAO>();
	}

	public GleisDAO(int gleisID, String Bezeichnung, double anfangsStation,
			double abstandKmLinie,
			SortedSet<KruemmungslinienDAO> kruemmungslinienElemente,
			SortedSet<UeberhoehungslinienDAO> ueberhoehungslinienElemente,
			SortedSet<HoehenlinienDAO> hoehenlinienElemente) {
		this.setGleisID(gleisID);
		this.setBezeichnung(Bezeichnung);
		this.setAnfangsStation(anfangsStation);
		this.setAbstandKmLinie(abstandKmLinie);
		this.kruemmungslinienElemente = kruemmungslinienElemente;
		this.ueberhoehungslinienElemente = ueberhoehungslinienElemente;
		this.hoehenlinienElemente = hoehenlinienElemente;

	}

	public void setGleisID(int gleisID) {
		this.gleisID = gleisID;
	}

	public int getGleisID() {
		return gleisID;
	}

	public void setAnfangsStation(double anfangsStation) {
		this.anfangsStation = anfangsStation;
	}

	public double getAnfangsStation() {
		return anfangsStation;
	}

	public void setBezeichnung(String bezeichnung) {
		this.bezeichnung = bezeichnung;
	}

	public String getBezeichnung() {
		return bezeichnung;
	}

	@Override
	public String toString() {
		return bezeichnung;
	}

	public void setAbstandKmLinie(double abstandKmLinie) {
		this.abstandKmLinie = abstandKmLinie;
	}

	public double getAbstandKmLinie() {
		return abstandKmLinie;
	}

	public void addKruemmungslinienElement(
			KruemmungslinienDAO kruemmungslinienElement) {
		kruemmungslinienElemente.add(kruemmungslinienElement);
	}

	public void addKruemmungslinienElemente(
			SortedSet<KruemmungslinienDAO> kruemmungslinienElemente) {
		this.kruemmungslinienElemente.addAll(kruemmungslinienElemente);
	}

	public SortedSet<KruemmungslinienDAO> getKruemmungslinienElemente() {
		return kruemmungslinienElemente;
	}

	public void addHoehenlinienElement(HoehenlinienDAO hoehenlinienElement) {
		hoehenlinienElemente.add(hoehenlinienElement);
	}

	public void addHoehenlinienElemente(
			SortedSet<HoehenlinienDAO> hoehenlinienElemente) {
		this.hoehenlinienElemente.addAll(hoehenlinienElemente);
	}

	public SortedSet<HoehenlinienDAO> getHoehenlinienElemente() {
		return hoehenlinienElemente;
	}

	public void addUeberhoehungslinienElement(
			UeberhoehungslinienDAO ueberhoehungslinienElement) {
		ueberhoehungslinienElemente.add(ueberhoehungslinienElement);
	}

	public void addUeberhoehungslinienElemente(
			SortedSet<UeberhoehungslinienDAO> ueberhoehungslinienElemente) {
		this.ueberhoehungslinienElemente.addAll(ueberhoehungslinienElemente);
	}

	public SortedSet<UeberhoehungslinienDAO> getUeberhoehungslinienElemente() {
		return ueberhoehungslinienElemente;
	}

}
